'ORIGINAL PROGRAM: CCHRC3 South Bay 2006_05_03.CR1 version 1.00 'WRITTEN BY: R.F. PAETZOLD 'DATE WRITTEN: 2 May 2006 'DATE LOADED: 'Program modified June 2015 to include temperature sensors from 'under the thermal storage tank on the west side of the building ''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''' '' '' '' DECLARATIONS & DEFINITIONS '' '' '' ''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''' StationName (Southlabfound) 'DECLARE CONSTANTS 'FIXED RESISTOR VALUE FOR GWS THERMISTOR CIRCUITS Const Rf_1 = 1.0 'INSERT FIXED RESISTOR #1 VALUE (kOHM) HERE <---------- 'FIXED RESISTOR VALUE FOR BSI THERMISTOR CIRCUITS Const Rf_2 = 1.0 'INSERT FIXED RESISTOR #2 VALUE (kOHM) HERE <---------- 'FIXED RESISTOR VALUE FOR BSI MOISTURE CONTENT PIN CIRCUITS Const Rf_3 = 10.0 'INSERT FIXED RESISTOR #3 VALUE (kOHM) HERE <---------- 'STEINHART & HART EQUATION CONSTANTS Const a = 0.00112530885 Const b = 0.00023471186 Const c = 0.00000008566 'DECLARE VARIABLES Dim k 'for loop with thermistors Dim i Dim D(4) 'DECLARE PUBLIC VARIABLES Public PTemp, batt_volt Public CS616_us (4), CS616_SM (4) 'NOTE: CS616_us IS THE RAW UNCORRECTED SENSOR MEASUREMENT (micro-seconds) ' CS616_SM IS THE TEMPERATURE CORRECTED MEASUREMENT CONVERTED TO VOL H2O CONTENT 'Public variables for the temperature sensors Public SOLAR_Therm_kOhm(4), SOLAR_Temp_C(4), SOLAR_therm(4), SOLAR_Temp_F(4) 'DECLARE ALIASES Alias CS616_SM(1)=FOUNDSouth_Sjpad_82in_SM Alias CS616_SM(3)=FOUNDSouth_Sjpad_33in_SM Alias CS616_SM(2)=FOUNDSouth_Njpad_89in_SM Alias CS616_SM(4)=FOUNDSouth_Njpad_33in_SM 'temperature aliases Alias SOLAR_Temp_F (1) = SOLAR_TundertankBOTTOM_F Alias SOLAR_Temp_F (2) = SOLAR_TundertankONEFOOT_F Alias SOLAR_Temp_F (3) = SOLAR_TundertankTWOFEET_F Alias SOLAR_Temp_F (4) = SOLAR_TundertankTHREEFEET_F 'DEFINE DATA TABLES 'HOURLY RAW MEASUREMENTS TABLE DataTable (FOUNDSL_backup_hr,1,-1) DataInterval (0,60,Min,0) Average (4,CS616_us(),FP2,False) EndTable 'HOURLY MEASUREMENTS TABLE DataTable (FOUNDSL_hr,1,-1) DataInterval (0,60,Min,0) Average (1,FOUNDSouth_Sjpad_82in_SM,Fp2,False) Average (1,FOUNDSouth_Sjpad_33in_SM,Fp2,False) Average (1,FOUNDSouth_Njpad_89in_SM,Fp2,False) Average (1,FOUNDSouth_Njpad_33in_SM,Fp2,False) EndTable 'DAILY MEASUREMENTS TABLE DataTable (FOUNDSL_day,1,-1) DataInterval (0,1440,Min,0) Average (1,FOUNDSouth_Sjpad_82in_SM,Fp2,False) Average (1,FOUNDSouth_Sjpad_33in_SM,Fp2,False) Average (1,FOUNDSouth_Njpad_89in_SM,Fp2,False) Average (1,FOUNDSouth_Njpad_33in_SM,Fp2,False) EndTable 'Soil temperatures daily measurements table DataTable (SOLAR_TankSoilT_Day, 1, -1) DataInterval (0, 1440, Min, 0) Average (1, SOLAR_TundertankBOTTOM_F, FP2, False) Average (1, SOLAR_TundertankONEFOOT_F, FP2, False) Average (1, SOLAR_TundertankTWOFEET_F, FP2, False) Average (1, SOLAR_TundertankTHREEFEET_F, FP2, False) EndTable ''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''' '' '' '' BEGIN MAIN PROGRAM '' '' '' ''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''' BeginProg Scan (5,Min,0,0) 'SCAN PROGRAM AT 5-Minute INTERVALS PanelTemp (PTemp,_60Hz) 'MEASURE DATALOGGER PANEL TEMPERATUE (deg C), 'WITH A 60Hz FILTER Battery (batt_volt) 'MEASURE BATTERY VOLTAGE (V) '''''''''''''''''''''''''''''''''''''''''''''''' ' ' ' Measure the CS616s ' ' ' '''''''''''''''''''''''''''''''''''''''''''''''' k = 1 'INITIALIZE INDEX INTERGER K TO ONE SubScan (0,Sec,4) 'SCAN LOOP -- 4 ITERATIONS TO READ 4 CS616s 'MEASURE CS616 SOIL MOISTURE SENSORS CCHSM4, CCHSM5, CCHSM8, AND CCHSM9 (microseconds) CS616 (CS616_us(k),4,10,5,4,1.0,0) k=k+1 NextSubScan 'CONVERT CORRECTED SOIL MOISTURE SENSOR MEASUREMENT (micro-seconds) TO VOLUMETRIC ' SOIL WATER CONTENT For k = 1 To 4 CS616_SM(k) = -0.0663+CS616_us(k)*(-0.0063+CS616_us(k)*0.0007) Next k ' Temperatures 'Initiaze index integer i to one i = 1 BrHalf(SOLAR_therm (i), 4, mV2500, 1, 1, 4,2500, True, 0, _60Hz, 1.0, 0) For i = 1 To 4 SOLAR_Therm_kOhm (i) = (10 * SOLAR_therm(i))/(1 - SOLAR_therm(i)) D(i) = LN (1000 * SOLAR_Therm_kOhm (i)) 'unit is ohm SOLAR_Temp_C(i) = (1/(a+b*D(i) + c*(D(i))^3)) - 273.15 'Steinhart & Hart Equation SOLAR_Temp_F(i) = 9/5 * SOLAR_Temp_C(i) + 32 Next i ''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''' '' '' '' OUTPUT '' '' '' ''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''''''''''''''''' 'CALL OUTPUT TABLES CallTable FOUNDSL_backup_hr'HOURLY DIAGNOSTICS TABLE CallTable FOUNDSL_day'HOURLY RAW MEASUREMENTS TABLE CallTable FOUNDSL_hr'HOURLY MEASUREMENTS TABLE CallTable SOLAR_TankSoilT_Day 'Daily temperature table (temps under storage tank) NextScan EndProg